package com.ruoyi.system.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 数据包信息对象 tb_data_package
 *
 * @author ruoyi
 * @date 2025-07-23
 */
@Data
@Schema(description = "数据包信息")
public class TbDataPackage extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 自增主键
     */
    @Excel(name = "自增主键")
    @Schema(description = "自增主键")
    private Long id;

    /**
     * 数据包名称
     */
    @Excel(name = "数据包名称")
    @Schema(description = "数据包名称")
    private String packageName;

    /**
     * 版本号
     */

    @Excel(name = "版本号")
    @Schema(description = "版本号")
    private String packageVersioncode;

    /**
     * 版本编号
     */
    @Excel(name = "版本编号")
    @Schema(description = "版本编号")
    private String packageVersionnumber;

    /** 开发商 */
    @Schema(description = "开发商")
    @Excel(name = "开发商")
    private String devSupplier;

    /**
     * 包大小(MB)
     */
    @Excel(name = "包大小(MB)")
    @Schema(description = "包大小(MB)")
    private Double packageSize;

    /**
     * 包的MD5校验码
     */
    @Excel(name = "包的MD5校验码")
    @Schema(description = "包的MD5校验码")
    private String packageHash;

    /**
     * 发布时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Schema(description = "发布时间")
    @Excel(name = "发布时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date publishDate;

    /**
     * 存储路径
     */
    @Excel(name = "存储路径")
    @Schema(description = "存储路径")
    private String packageUrl;

    /**
     * 状态(0=下架 1=正常)
     */
    @Excel(name = "状态(0=下架 1=正常)")
    @Schema(description = "状态(0=下架 1=正常)")
    private Integer status;

    /**
     * 包类型(1=导航数据 2=地形数据 3=航图 4=天气数据 5=系统更新)
     */
    @Excel(name = "包类型(1=导航数据 2=地形数据 3=航图 4=天气数据 5=系统更新)")
    @Schema(description = "包类型(1=导航数据 2=地形数据 3=航图 4=天气数据 5=系统更新)")
    private Integer packageType;

    /**
     * 适用机型(逗号分隔)
     */
    @Excel(name = "适用机型(逗号分隔)")
    @Schema(description = "适用机型(逗号分隔)")
    private String applicableModels;

    /**
     * 下载次数
     */
    @Excel(name = "下载次数")
    @Schema(description = "下载次数")
    private Integer downloadCount;

    /**
     * 是否强制更新(0=否 1=是)
     */
    @Excel(name = "是否强制更新(0=否 1=是)")
    @Schema(description = "是否强制更新(0=否 1=是)")
    private Integer isForceUpdate;


}
